package com.yaozheng.vocationaltraining.http;

//import org.apache.http.entity.StringEntity;


import android.app.Activity;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.RequestParams;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest;
import com.yaozheng.vocationaltraining.R;
import com.yaozheng.vocationaltraining.utils.LogUtils;
import com.yaozheng.vocationaltraining.utils.StringUtils;

import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class HttpClient {

//    public static void get(final Activity context, final String url,
//                           final HttpCallback httpCallback) {
//        RequestParams params = new RequestParams();
//        params.addHeader("Content-Type", "application/json");
//        // params.addQueryStringParameter("access_token",
//        // ((QYHZApplication) context.getApplication()).getAccessToken());
//
//        HttpUtils http = new HttpUtils();
//        http.configDefaultHttpCacheExpiry(0);
//        http.send(HttpRequest.HttpMethod.GET, url, params,
//                new RequestCallBack<String>() {
//
//                    @Override
//                    public void onStart() {
//                    }
//
//                    @Override
//                    public void onLoading(long total, long current,
//                                          boolean isUploading) {
//
//                    }
//
//                    @Override
//                    public void onSuccess(ResponseInfo<String> responseInfo) {
//                        LogUtils.println(responseInfo.result);
//                        try {
//                            Gson gson = new Gson();
//                            HttpResult httpResult = gson.fromJson(
//                                    responseInfo.result,
//                                    new TypeToken<HttpResult>() {
//                                    }.getType());
//
//                            httpCallback.onSuccess(httpResult);
//
//                        } catch (Exception e) {
//                            e.printStackTrace();
//                        }
//                    }
//
//                    @Override
//                    public void onFailure(HttpException error, String msg) {
//                        LogUtils.println(error.toString());
//                        HttpResult httpResult = new HttpResult();
//                        httpResult.setError_code("1");
//                        // httpResult.setErrmsg(context.getResources().getString(
//                        // R.string.request_error));
//                        httpCallback.onError(httpResult);
//                    }
//                });
//    }
//
//    /**
//     * 发送HTTP请求
//     *
//     * @param url
//     *            请求URL
//     * @param requestParams
//     *            请求参数
//     * @param httpCallback
//     *            请求回调接口
//     */
//    public static void post(final Activity context, final String url,
//                            Object requestParams, HttpCallback httpCallback) {
//        HashMap<String, Object> tempMap = ObjectToMap(requestParams);
//        if (null != tempMap) {
//            Iterator<Map.Entry<String, Object>> it = tempMap.entrySet()
//                    .iterator();
//            HashMap<String, String> mapParam = new HashMap<String, String>();
//            while (it.hasNext()) {
//                Map.Entry<String, Object> entry = it.next();
//                if (null != entry.getValue()) {
//                    mapParam.put(entry.getKey(), entry.getValue().toString());
//                }
//            }
//            HttpClient.post(context, url, mapParam, httpCallback);
//        } else {
//
//        }
//    }
//
//    public static void postMap(final Context context, final String url,
//                               HashMap<String, Object> requestParams,
//                               final HttpCallback httpCallback) {
//
//        RequestParams params = new RequestParams();
//        params.addHeader("Content-Type", "application/json");
//
//
//        Gson gson = new Gson();
//        try {
//            Log.i("tag", "gson====" + gson.toJson(requestParams));
//            params.setBodyEntity(new StringEntity(gson.toJson(requestParams),
//                    "UTF-8"));
//        } catch (UnsupportedEncodingException e) {
//            e.printStackTrace();
//        }
//
//        HttpUtils http = new HttpUtils();
//        http.configDefaultHttpCacheExpiry(1);
//        http.configCurrentHttpCacheExpiry(1);
//        http.send(HttpRequest.HttpMethod.POST, url, params,
//                new RequestCallBack<String>() {
//
//                    @Override
//                    public void onStart() {
//
//                    }
//
//                    @Override
//                    public void onLoading(long total, long current,
//                                          boolean isUploading) {
//
//                    }
//
//                    @Override
//                    public void onSuccess(ResponseInfo<String> responseInfo) {
//                        LogUtils.println(responseInfo.result);
//                        String result = responseInfo.result;
//                        if (TextUtils.isEmpty(result) || result.length() < 10) {
//                            return;
//                        }
//                        try {
//                            Gson gson = new Gson();
//                            HttpResult httpResult = gson.fromJson(
//                                    responseInfo.result,
//                                    new TypeToken<HttpResult>() {
//                                    }.getType());
//
//                            httpCallback.onSuccess(httpResult);
//
//                        } catch (Exception e) {
//                            e.printStackTrace();
//                            HttpResult httpResult = new HttpResult();
//                            httpResult.setError_code("1");
////                            httpResult.setMsg(context.getResources().getString(
////                                    R.string.request_error));
//
//                            httpCallback.onError(httpResult);
//                        }
//                    }
//
//                    @Override
//                    public void onFailure(HttpException error, String msg) {
//                        LogUtils.println(error.toString());
//
//                        HttpResult httpResult = new HttpResult();
//                        httpResult.setError_code("1");
////                        httpResult.setMsg(context.getResources().getString(
////                                R.string.request_error));
//                        httpCallback.onError(httpResult);
//                    }
//                });
//    }
//
//    public static void post(final Activity context, final String url,
//                            HashMap<String, String> requestParams,
//                            final HttpCallback httpCallback) {
//
//        RequestParams params = new RequestParams();
//        params.addHeader("Content-Type", "application/json");
//
//        Gson gson = new Gson();
//        try {
//            Log.i("tag", "gson====" + gson.toJson(requestParams));
//            params.setBodyEntity(new StringEntity(gson.toJson(requestParams),
//                    "UTF-8"));
//        } catch (UnsupportedEncodingException e) {
//            e.printStackTrace();
//        }
//
//        HttpUtils http = new HttpUtils();
//        http.configDefaultHttpCacheExpiry(0);
//        http.send(HttpRequest.HttpMethod.POST, url, params,
//                new RequestCallBack<String>() {
//
//                    @Override
//                    public void onStart() {
//
//                    }
//
//                    @Override
//                    public void onLoading(long total, long current,
//                                          boolean isUploading) {
//
//                    }
//
//                    @Override
//                    public void onSuccess(ResponseInfo<String> responseInfo) {
//                        LogUtils.println(responseInfo.result);
//                        String result = responseInfo.result;
//                        if (TextUtils.isEmpty(result) || result.length() < 10) {
//                            return;
//                        }
//                        // String jsonResult = result.substring(result
//                        // .indexOf("{"));
//
//                        try {
//                            Gson gson = new Gson();
//                            HttpResult httpResult = gson.fromJson(
//                                    responseInfo.result,
//                                    new TypeToken<HttpResult>() {
//                                    }.getType());
//
//                            httpCallback.onSuccess(httpResult);
//
//                        } catch (Exception e) {
//                            e.printStackTrace();
//                            HttpResult httpResult = new HttpResult();
//                            httpResult.setError_code("1");
////                            httpResult.setMsg(context.getResources().getString(
////                                    R.string.request_error));
//                            httpCallback.onError(httpResult);
//                        }
//                    }
//
//                    @Override
//                    public void onFailure(HttpException error, String msg) {
//                        LogUtils.println(error.toString());
//
//                        HttpResult httpResult = new HttpResult();
//                        httpResult.setError_code("1");
////                        httpResult.setMsg(context.getResources().getString(
////                                R.string.request_error));
//                        httpCallback.onError(httpResult);
//                    }
//                });
//    }
//
//    private static HashMap<String, Object> ObjectToMap(Object requestParams) {
//        Gson gson = new Gson();
//        String jsonString = gson.toJson(requestParams);
//        return gson.fromJson(jsonString, HashMap.class);
//    }

}
